package main

import "fmt"

//Student 学生信息
type Student struct {
	Id int
	Name string
	BookInfo map[string]int
}

//newStudent 学生信息构造函数
func newStudent(id int,name string)*Student{
	return &Student{
		Id: id,
		Name: name,
		BookInfo:make(map[string]int),
	}
}

//StuMeg 学生合集
type StuMeg struct {
	StuInfo []*Student
}

//StuMeg 学生合集构造函数
func newStuMeg()*StuMeg{
	return &StuMeg{
		StuInfo: make([]*Student,0,100),
	}
}

//输入新增学生信息
func InputNewStu()*Student{
	var(
		id int
		name string
	)
	fmt.Println("请按要求添加学生信息！")
	fmt.Println("请输入学生学号")
	fmt.Scanf("%d\n",&id)
	fmt.Println("请输入学生姓名")
	fmt.Scanf("%v\n",&name)
	stu := newStudent(id,name)
	return stu
}


//功能：新增学生
func (s *StuMeg)addStu(stu *Student){
	s.StuInfo = append(s.StuInfo,stu)
}

//功能：查看学生借阅书籍信息
func (s *StuMeg)showStu(){
	for _,v:=range s.StuInfo{
		fmt.Printf("学号：%v，姓名：%v，借阅图书及数量：%v\n",v.Id,v.Name,v.BookInfo)
	}
}

//验证学生
func (s *StuMeg)checkStu()string{
	fmt.Println("请输入学生学号")
	var id int
	fmt.Scanf("%d\n",&id)
	for _,v:=range s.StuInfo{
		if v.Id == id{ //若学号存在
			return v.Name
		}
	}
	fmt.Printf("学号为%v的学生不存在！请重新输入\n",id)
	return "nil"
}

//功能：学生借阅书籍（新增借阅书籍信息）
func (s *StuMeg)borStu(sname,bname string){
	for _,v:=range s.StuInfo{
		if v.Name == sname{
			v.BookInfo[bname]++
			fmt.Println("借阅成功！")
		}
	}
}

//功能：学生归还书籍（新增借阅书籍信息）
func (s *StuMeg)retStu(sname,bname string){
	for _,v:=range s.StuInfo{
		if v.Name == sname{
			v.BookInfo[bname]--
			fmt.Println("还书成功！")
		}
	}
}